package com.example.demo01.controllter.test;

import ch.qos.logback.classic.net.SocketNode;
import javafx.animation.FadeTransition;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.File;

/**
 * @author admin
 * @Description 儿子类
 * @date 2020-07-28 09:28:00
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
public class Son extends Father {

    static Integer integer = 1;

    static {
        System.out.println("静态方法执行");
    }

    private String name;

    private Integer age;

    private Integer height;

    @Override
    public void work() {
        System.out.println("学生的工作是学习");
    }

    public Son() {
        System.out.println("子类构造方法执行");
    }

    public static void main(String[] args) {
        // 静态代码块、静态变量、成员变量、构造代码块、构造方法
        // （静态代码块、静态变量）> （构造代码块、成员变量）> 构造方法
        //  静态变量 > 静态方法 > 成员变量 > 成员方法 > 构造方法
        // 调用父类构造方法
        Son son = new Son();
        son.work();
        // 父类名称 对象名 = new 子类名称() 向下转型
        Father father = new Son("name", 12, 164);
        // 子类名称 对象名 = (子类名称) 父类对象 向上转型
    }
}
